import {
  ElInput, ElInputTag, ElInputNumber, ElCascader,
  ElCheckboxGroup, ElColorPicker, ElDatePicker, ElMention,
  ElRadioGroup, ElRate, ElSelect, ElSlider,
  ElSwitch, ElTimePicker, ElTimeSelect, ElTransfer,
  ElTreeSelect, ElUpload, type FormItemRule
} from 'element-plus'
import ElSelectPlus from "../ASelect/el-select-plus.vue";
import type {Component} from "vue";
import FileUploader from "@/components/AFile/file-uploader.vue";
import ElTableSelector from "@/components/ATableSelect/ElTableSelector.vue";

export const COMPONENT_MAP:Record<string, Component>={
  ElInput,
  ElInputTag,
  ElInputNumber,
  ElCascader,
  ElCheckboxGroup,
  ElColorPicker,
  ElDatePicker,
  ElMention,
  ElRadioGroup,
  ElRate,
  ElSelect,
  ElSlider,
  ElSwitch,
  ElTimePicker,
  ElTimeSelect,
  ElTransfer,
  ElTreeSelect,
  ElUpload,
  ElSelectPlus,
  FileUploader,
  ElTableSelector
}
export type ElFormItem ={
  prop:string,
  label?:string,
  required?:boolean,
  rules?:FormItemRule[],
  slot?:string,
  component?:string
  'show-message'?:boolean,
  'inline-message'?:string|boolean,
  props?:any
}
